Brief Full Advanced Search Search Tips
|  |  | To access the contents, click the chapter and section titles. Visual Basic 6 Programming Blue Book: The Most Complete, Hands-On Resource for Writing Programs with Microsoft Visual Basic 6! (Publisher: The Coriolis Group) Author(s): Peter G. Aitken ISBN: 1576102815 Publication Date: 08/01/98 Search this book:
Previous | Table of Contents | Next
OLE Automation With An Embedded Object To demonstrate OLE automation with an embedded object, I will use a Microsoft Word document object. The technique of combining OLE embedding with OLE automation is both powerful and flexible. This simple demonstration gives you a taste of what is possible. The program does the following: • Creates a blank Word document embedded in the Visual Basic program’s OLE control. • When the user clicks on a Command Button, starts the letter by entering the date, return address, and greeting. • Activates the document for in-place editing, permitting the user to add the body of the letter and format it with Word’s tools and commands. • When the user clicks on another Command Button, finishes the letter by adding the closing. • When the user clicks on the Done button, asks whether the letter should be printed and saved. If the user requests either one, uses OLE automation commands to instruct Word to print or save the document. Figure 10.9 shows this demonstration program, displaying the document activated for editing. Notice that the activated document displays Word’s menu and provides access to Word’s formatting and editing commands. The program’s objects and properties are presented in Listing 10.4, and the code is in Listing 10.5. Rather than walk you though the code a line at a time, I suggest you try to figure out what’s going on by yourself. The code is actually fairly simple, so you shouldn’t have any problems. Figure 10.9 OLEAUTO2 showing the Word document activated for editing. Listing 10.4 Objects and properties in OLEAUTO2.FRM.
    Begin VB.Form Form1
       Caption        =   “Form1”
       LinkTopic      =   “Form1”
       Begin VB.CommandButton Command1
          Caption         =   “&Done”
       End
       Begin VB.CommandButton Command1
          Caption         =   “&Finish Letter”
          Index           =   1
       End
       Begin VB.CommandButton Command1
          Caption         =   “&Begin Letter”
          Index           =   0
       End
       Begin VB.OLE OLE1
       End
    End
Listing 10.5 Code in OLEAUTO2.FRM.
    Option Explicit
    ‘ The Object variable.
    Dim WordDoc As Object
    Const vbOLEPrimary = 0
    Private Sub Command1_Click(Index As Integer)
    Dim Reply As Integer
    Dim s1 As String, s2 As String
    ‘ Five tabs.
    s1 = Chr$(9) & Chr$(9) & Chr$(9) & Chr$(9) & Chr$(9)
    Select Case Index
        Case 0      ‘ Begin Letter.
            ‘ Insert the date into the document.
            WordDoc.Insert Date$
            WordDoc.InsertPara
            ‘ Insert two blank lines.
            WordDoc.InsertPara
            WordDoc.InsertPara
            ‘ Insert the return address preceded by tabs.
            s2 = s1 & “P.O. Box 1234”
            WordDoc.Insert s2
            WordDoc.InsertPara
            s2 = s1 & “Anytown, NC 12345”
            WordDoc.Insert s2
            WordDoc.InsertPara
            ‘ Insert two blank lines and the greeting.
            WordDoc.InsertPara
            WordDoc.InsertPara
            WordDoc.Insert “Dear ”
            ‘ Activate for in-place editing.
            OLE1.DoVerb (vbOLEPrimary)

        Case 1      ‘ Finish Letter.
            ‘ Add the salutation at the end of the letter.
            WordDoc.InsertPara
            s2 = s1 & “Yours truly,”
            WordDoc.Insert s2
            WordDoc.InsertPara
            WordDoc.InsertPara
            WordDoc.InsertPara
            WordDoc.InsertPara
            s2 = s1 & “Peter G. Aitken”
            WordDoc.Insert s2
            WordDoc.InsertPara
            ‘ Activate for in-place editing.
            OLE1.DoVerb (vbOLEPrimary)

        Case 2      ‘ Done
            ‘ Does the user want to print? If so, instruct
            ‘ Word to print with the default settings.
            Reply = MsgBox(“Print letter?”, vbYesNo + vbQuestion)
            If Reply = vbYes Then WordDoc.FilePrintDefault
            ‘ Does the user want to save? If so, instruct
            ‘ Word to display the Save As dialog box.
            Reply = MsgBox(“Save letter?”, vbYesNo + vbQuestion)
            If Reply = vbYes Then
                WordDoc.FileSave
            End If
            ‘ Destroy the object.
            Set WordDoc = Nothing
            End
    End Select
    End Sub
    Private Sub Form_Load()
    ‘ Position the OLE control to fill the width of the form
    ‘ and 3/4 of the height.
    OLE1.Top = 0
    OLE1.Left = 0
    OLE1.Width = ScaleWidth
    OLE1.Height = ScaleHeight * 0.75
    ‘Create a new embedded Word document.
    OLE1.CreateEmbed “”, “Word.Document.6”
    ‘ Activate the object(required for OLE automation).
    OLE1.DoVerb (vbOLEPrimary)
    ‘ Create the OLE automation object.
    Set WordDoc = OLE1.object.Application.WordBasic
    End Sub
Previous | Table of Contents | Next

| Products | Contact Us | About Us | Privacy | Ad Info | Home Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc. All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.